<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: g2o::SparseOptimizer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classg2o_1_1_sparse_optimizer.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classg2o_1_1_sparse_optimizer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">g2o::SparseOptimizer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="sparse__optimizer_8h_source.html">sparse_optimizer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for g2o::SparseOptimizer:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_sparse_optimizer__inherit__graph.svg" width="166" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for g2o::SparseOptimizer:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_sparse_optimizer__coll__graph.svg" width="554" height="383"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a085529b092eb7fe4970e0cd6c3bd18bf"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classg2o_1_1_sparse_optimizer.html#a085529b092eb7fe4970e0cd6c3bd18bfa040ef6eacdbc7ede37bc5280dc5a2814">AT_COMPUTEACTIVERROR</a> = OptimizableGraph::AT_NUM_ELEMENTS, 
<a class="el" href="classg2o_1_1_sparse_optimizer.html#a085529b092eb7fe4970e0cd6c3bd18bfa9e4fe5403aed6a2ac8b31651c9379098">AT_NUM_ELEMENTS</a>
 }</td></tr>
<tr class="separator:a085529b092eb7fe4970e0cd6c3bd18bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_structg2o_1_1_optimizable_graph"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structg2o_1_1_optimizable_graph')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="structg2o_1_1_optimizable_graph.html">g2o::OptimizableGraph</a></td></tr>
<tr class="memitem:a16d90305c171fe0582c6a8aef40ba89d inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89d">ActionType</a> { <a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89dad79dc2fea3676bc2e26a83b7aca0cff6">AT_PREITERATION</a>, 
<a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da6022cb4383dca15d503e600c463c5e5a">AT_POSTITERATION</a>, 
<a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da33b97f5bc80d2e6227c95364573d3651">AT_NUM_ELEMENTS</a>
 }</td></tr>
<tr class="separator:a16d90305c171fe0582c6a8aef40ba89d inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b43e807ae6d61ef8749ca1ef7c25f62 inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">OptimizableGraph::Edge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">EdgeContainer</a></td></tr>
<tr class="memdesc:a2b43e807ae6d61ef8749ca1ef7c25f62 inherit pub_types_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector container for edges  <a href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">More...</a><br /></td></tr>
<tr class="separator:a2b43e807ae6d61ef8749ca1ef7c25f62 inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3562ad6794c36ea832095131cfffaac inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">HyperGraphActionSet</a></td></tr>
<tr class="separator:aa3562ad6794c36ea832095131cfffaac inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54f01b9b6071e65e6abeebe4afb29dec inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a></td></tr>
<tr class="memdesc:a54f01b9b6071e65e6abeebe4afb29dec inherit pub_types_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector container for vertices  <a href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">More...</a><br /></td></tr>
<tr class="separator:a54f01b9b6071e65e6abeebe4afb29dec inherit pub_types_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classg2o_1_1_hyper_graph"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classg2o_1_1_hyper_graph')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classg2o_1_1_hyper_graph.html">g2o::HyperGraph</a></td></tr>
<tr class="memitem:a5e2970e236c0dcb4eff7c205d7b6b4ae inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a></td></tr>
<tr class="separator:a5e2970e236c0dcb4eff7c205d7b6b4ae inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b8fda20e1b03e92aeceeac6e8218b73 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::bitset&lt; <a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6">HyperGraph::HGET_NUM_ELEMS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a7b8fda20e1b03e92aeceeac6e8218b73">GraphElemBitset</a></td></tr>
<tr class="separator:a7b8fda20e1b03e92aeceeac6e8218b73 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af603119d5d3475aed6e34ee9d701b69e inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">HyperGraphElementType</a> { <br />
&#160;&#160;<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69ea4a278c79154a0d4c381a7e265d7048f5">HGET_VERTEX</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69ea32ab1204ad3640d91c59ce6fffe2e580">HGET_EDGE</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eaec8dd0de424ff24a18d3ba5ed3864f79">HGET_PARAMETER</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafdb05add70f035dced2b173de8431408">HGET_CACHE</a>, 
<br />
&#160;&#160;<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eac780d65b4de763d230e9cad4378c46fa">HGET_DATA</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6">HGET_NUM_ELEMS</a>
<br />
 }<tr class="memdesc:af603119d5d3475aed6e34ee9d701b69e"><td class="mdescLeft">&#160;</td><td class="mdescRight">enum of all the types we have in our graphs  <a href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:af603119d5d3475aed6e34ee9d701b69e inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9339534c99300a0ddac87ba976ef188c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">VertexContainer</a></td></tr>
<tr class="separator:a9339534c99300a0ddac87ba976ef188c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97307eac064ebf4b3e2cfbf0718035b5 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::tr1::unordered_map&lt; int, <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a></td></tr>
<tr class="separator:a97307eac064ebf4b3e2cfbf0718035b5 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a703938cdb4bb636860eed55a2489d70c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">VertexSet</a></td></tr>
<tr class="separator:a703938cdb4bb636860eed55a2489d70c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab64abc4e84ba0fd8f55dbd12477ef76d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ab64abc4e84ba0fd8f55dbd12477ef76d">activeChi2</a> () const</td></tr>
<tr class="memdesc:ab64abc4e84ba0fd8f55dbd12477ef76d"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the cached chi2 of the active portion of the graph  <a href="#ab64abc4e84ba0fd8f55dbd12477ef76d">More...</a><br /></td></tr>
<tr class="separator:ab64abc4e84ba0fd8f55dbd12477ef76d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44edae09e8d4b2b1f7ed5b9d791f9459"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">EdgeContainer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a44edae09e8d4b2b1f7ed5b9d791f9459">activeEdges</a> () const</td></tr>
<tr class="memdesc:a44edae09e8d4b2b1f7ed5b9d791f9459"><td class="mdescLeft">&#160;</td><td class="mdescRight">the edges active in the current optimization  <a href="#a44edae09e8d4b2b1f7ed5b9d791f9459">More...</a><br /></td></tr>
<tr class="separator:a44edae09e8d4b2b1f7ed5b9d791f9459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a8950d87cbbfe991b5f6381db19593c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a9a8950d87cbbfe991b5f6381db19593c">activeRobustChi2</a> () const</td></tr>
<tr class="memdesc:a9a8950d87cbbfe991b5f6381db19593c"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the cached chi2 of the active portion of the graph.  <a href="#a9a8950d87cbbfe991b5f6381db19593c">More...</a><br /></td></tr>
<tr class="separator:a9a8950d87cbbfe991b5f6381db19593c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9843e19ec85c9f6598e52d7223e54e75"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a9843e19ec85c9f6598e52d7223e54e75">activeVertices</a> () const</td></tr>
<tr class="memdesc:a9843e19ec85c9f6598e52d7223e54e75"><td class="mdescLeft">&#160;</td><td class="mdescRight">the vertices active in the current optimization  <a href="#a9843e19ec85c9f6598e52d7223e54e75">More...</a><br /></td></tr>
<tr class="separator:a9843e19ec85c9f6598e52d7223e54e75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43517d9f9f23ba6041061c57dddd916d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a43517d9f9f23ba6041061c57dddd916d">addComputeErrorAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a43517d9f9f23ba6041061c57dddd916d"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an action to be executed before the error vectors are computed  <a href="#a43517d9f9f23ba6041061c57dddd916d">More...</a><br /></td></tr>
<tr class="separator:a43517d9f9f23ba6041061c57dddd916d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa08ce344e31a461426289a638b33332a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aa08ce344e31a461426289a638b33332a">algorithm</a> () const</td></tr>
<tr class="memdesc:aa08ce344e31a461426289a638b33332a"><td class="mdescLeft">&#160;</td><td class="mdescRight">the solver used by the optimizer  <a href="#aa08ce344e31a461426289a638b33332a">More...</a><br /></td></tr>
<tr class="separator:aa08ce344e31a461426289a638b33332a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eede0614bcccf8707480c53071da8f8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceg2o.html#a526b32fde21f83173acb2bb29db68275">BatchStatisticsContainer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a7eede0614bcccf8707480c53071da8f8">batchStatistics</a> () const</td></tr>
<tr class="memdesc:a7eede0614bcccf8707480c53071da8f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linearizes the system by computing the Jacobians for the nodes and edges in the graph.  <a href="#a7eede0614bcccf8707480c53071da8f8">More...</a><br /></td></tr>
<tr class="separator:a7eede0614bcccf8707480c53071da8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa93ecf8d3b99e2eef3709a5c70cc8632"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceg2o.html#a526b32fde21f83173acb2bb29db68275">BatchStatisticsContainer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aa93ecf8d3b99e2eef3709a5c70cc8632">batchStatistics</a> ()</td></tr>
<tr class="memdesc:aa93ecf8d3b99e2eef3709a5c70cc8632"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the set of batch statistics about the optimisation  <a href="#aa93ecf8d3b99e2eef3709a5c70cc8632">More...</a><br /></td></tr>
<tr class="separator:aa93ecf8d3b99e2eef3709a5c70cc8632"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4881e4ac9ba9a58d4e249dc03ef9683d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a4881e4ac9ba9a58d4e249dc03ef9683d">clear</a> ()</td></tr>
<tr class="memdesc:a4881e4ac9ba9a58d4e249dc03ef9683d"><td class="mdescLeft">&#160;</td><td class="mdescRight">clears the graph, and polishes some intermediate structures Note that this only removes nodes / edges.  <a href="#a4881e4ac9ba9a58d4e249dc03ef9683d">More...</a><br /></td></tr>
<tr class="separator:a4881e4ac9ba9a58d4e249dc03ef9683d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09572668aa85b75a5bebf7b66401ce8f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a09572668aa85b75a5bebf7b66401ce8f">computeActiveErrors</a> ()</td></tr>
<tr class="memdesc:a09572668aa85b75a5bebf7b66401ce8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">computes the error vectors of all edges in the activeSet, and caches them  <a href="#a09572668aa85b75a5bebf7b66401ce8f">More...</a><br /></td></tr>
<tr class="separator:a09572668aa85b75a5bebf7b66401ce8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8dfc896595b27ea0315862acb54f5f2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ad8dfc896595b27ea0315862acb54f5f2">computeBatchStatistics</a> () const</td></tr>
<tr class="separator:ad8dfc896595b27ea0315862acb54f5f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59db9f16934d3b9f7a52511f0be1bb07"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a59db9f16934d3b9f7a52511f0be1bb07">computeInitialGuess</a> ()</td></tr>
<tr class="memdesc:a59db9f16934d3b9f7a52511f0be1bb07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Propagates an initial guess from the vertex specified as origin.  <a href="#a59db9f16934d3b9f7a52511f0be1bb07">More...</a><br /></td></tr>
<tr class="separator:a59db9f16934d3b9f7a52511f0be1bb07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fba11c8572fce4a8c1bcca4fa3e43fb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a2fba11c8572fce4a8c1bcca4fa3e43fb">computeInitialGuess</a> (<a class="el" href="classg2o_1_1_estimate_propagator_cost.html">EstimatePropagatorCost</a> &amp;propagator)</td></tr>
<tr class="memdesc:a2fba11c8572fce4a8c1bcca4fa3e43fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above but using a specific propagator.  <a href="#a2fba11c8572fce4a8c1bcca4fa3e43fb">More...</a><br /></td></tr>
<tr class="separator:a2fba11c8572fce4a8c1bcca4fa3e43fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a656be8b8244a48dc1207f29eec77af5a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a656be8b8244a48dc1207f29eec77af5a">computeMarginals</a> (<a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;spinv, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;blockIndices)</td></tr>
<tr class="memdesc:a656be8b8244a48dc1207f29eec77af5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">computes the blocks of the inverse of the specified pattern.  <a href="#a656be8b8244a48dc1207f29eec77af5a">More...</a><br /></td></tr>
<tr class="separator:a656be8b8244a48dc1207f29eec77af5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9f7ba03f7f37114f757f34f67dd48e5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ad9f7ba03f7f37114f757f34f67dd48e5">computeMarginals</a> (<a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;spinv, const <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *<a class="el" href="structg2o_1_1_optimizable_graph.html#a19e014e8ec2e9a6e894da8c3a8f8e50d">vertex</a>)</td></tr>
<tr class="memdesc:ad9f7ba03f7f37114f757f34f67dd48e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">computes the inverse of the specified vertex.  <a href="#ad9f7ba03f7f37114f757f34f67dd48e5">More...</a><br /></td></tr>
<tr class="separator:ad9f7ba03f7f37114f757f34f67dd48e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06bd3e9f1576dafeae317d2697c6f532"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a06bd3e9f1576dafeae317d2697c6f532">computeMarginals</a> (<a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;spinv, const <a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a> &amp;<a class="el" href="classg2o_1_1_hyper_graph.html#a95fcf7cd9d89562b2c26d99ede3548ed">vertices</a>)</td></tr>
<tr class="memdesc:a06bd3e9f1576dafeae317d2697c6f532"><td class="mdescLeft">&#160;</td><td class="mdescRight">computes the inverse of the set specified vertices, assembled into a single covariance matrix.  <a href="#a06bd3e9f1576dafeae317d2697c6f532">More...</a><br /></td></tr>
<tr class="separator:a06bd3e9f1576dafeae317d2697c6f532"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6344493dc9f66d5443759ff9f2abf6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ac6344493dc9f66d5443759ff9f2abf6c">discardTop</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;vlist)</td></tr>
<tr class="memdesc:ac6344493dc9f66d5443759ff9f2abf6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">ignore the latest stored element on the stack, remove it from the stack but do not restore the estimate  <a href="#ac6344493dc9f66d5443759ff9f2abf6c">More...</a><br /></td></tr>
<tr class="separator:ac6344493dc9f66d5443759ff9f2abf6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20ed9e9f1201bfb874456a8d30f169fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a20ed9e9f1201bfb874456a8d30f169fb">discardTop</a> ()</td></tr>
<tr class="memdesc:a20ed9e9f1201bfb874456a8d30f169fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">same as above, but for the active vertices  <a href="#a20ed9e9f1201bfb874456a8d30f169fb">More...</a><br /></td></tr>
<tr class="separator:a20ed9e9f1201bfb874456a8d30f169fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b8397148c3b75539043df83412829bd"><td class="memItemLeft" align="right" valign="top">EdgeContainer::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a3b8397148c3b75539043df83412829bd">findActiveEdge</a> (const <a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">OptimizableGraph::Edge</a> *e) const</td></tr>
<tr class="memdesc:a3b8397148c3b75539043df83412829bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">search for an edge in _activeEdges and return the iterator pointing to it getActiveEdges().end() if not found  <a href="#a3b8397148c3b75539043df83412829bd">More...</a><br /></td></tr>
<tr class="separator:a3b8397148c3b75539043df83412829bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a801bd46818f64a45aea124789d6d9511"><td class="memItemLeft" align="right" valign="top">VertexContainer::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a801bd46818f64a45aea124789d6d9511">findActiveVertex</a> (const <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a> *v) const</td></tr>
<tr class="memdesc:a801bd46818f64a45aea124789d6d9511"><td class="mdescLeft">&#160;</td><td class="mdescRight">search for an edge in _activeVertices and return the iterator pointing to it getActiveVertices().end() if not found  <a href="#a801bd46818f64a45aea124789d6d9511">More...</a><br /></td></tr>
<tr class="separator:a801bd46818f64a45aea124789d6d9511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad77b73bf7d192fcebf1daf9ae103036"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aad77b73bf7d192fcebf1daf9ae103036">findGauge</a> ()</td></tr>
<tr class="memdesc:aad77b73bf7d192fcebf1daf9ae103036"><td class="mdescLeft">&#160;</td><td class="mdescRight">finds a gauge in the graph to remove the undefined dof.  <a href="#aad77b73bf7d192fcebf1daf9ae103036">More...</a><br /></td></tr>
<tr class="separator:aad77b73bf7d192fcebf1daf9ae103036"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3e5ee5263cd424aa763330d3a8a77c8"><td class="memItemLeft" align="right" valign="top">bool *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aa3e5ee5263cd424aa763330d3a8a77c8">forceStopFlag</a> () const</td></tr>
<tr class="separator:aa3e5ee5263cd424aa763330d3a8a77c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac99e785f4822dd540b389ea179ce4f06"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ac99e785f4822dd540b389ea179ce4f06">gaugeFreedom</a> ()</td></tr>
<tr class="separator:ac99e785f4822dd540b389ea179ce4f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93e11150d513979a6367518ecaf26e02"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a93e11150d513979a6367518ecaf26e02">indexMapping</a> () const</td></tr>
<tr class="memdesc:a93e11150d513979a6367518ecaf26e02"><td class="mdescLeft">&#160;</td><td class="mdescRight">the index mapping of the vertices  <a href="#a93e11150d513979a6367518ecaf26e02">More...</a><br /></td></tr>
<tr class="separator:a93e11150d513979a6367518ecaf26e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56c0c13954ac7204cfb031c141ece9ae"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a56c0c13954ac7204cfb031c141ece9ae">initializeOptimization</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;eset)</td></tr>
<tr class="memdesc:a56c0c13954ac7204cfb031c141ece9ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the structures for optimizing a portion of the graph specified by a subset of edges.  <a href="#a56c0c13954ac7204cfb031c141ece9ae">More...</a><br /></td></tr>
<tr class="separator:a56c0c13954ac7204cfb031c141ece9ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab16dd36e32577ba5856239ce721ec70b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ab16dd36e32577ba5856239ce721ec70b">initializeOptimization</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset, int level=0)</td></tr>
<tr class="memdesc:ab16dd36e32577ba5856239ce721ec70b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the structures for optimizing a portion of the graph specified by a subset of vertices.  <a href="#ab16dd36e32577ba5856239ce721ec70b">More...</a><br /></td></tr>
<tr class="separator:ab16dd36e32577ba5856239ce721ec70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace3994bf5f403c7fa0305635aa598473"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ace3994bf5f403c7fa0305635aa598473">initializeOptimization</a> (int level=0)</td></tr>
<tr class="memdesc:ace3994bf5f403c7fa0305635aa598473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the structures for optimizing the whole graph.  <a href="#ace3994bf5f403c7fa0305635aa598473">More...</a><br /></td></tr>
<tr class="separator:ace3994bf5f403c7fa0305635aa598473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a098257ee6f13dbb79be07075244d9930"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a098257ee6f13dbb79be07075244d9930">optimize</a> (int iterations, bool online=false)</td></tr>
<tr class="memdesc:a098257ee6f13dbb79be07075244d9930"><td class="mdescLeft">&#160;</td><td class="mdescRight">starts one optimization run given the current configuration of the graph, and the current settings stored in the class instance.  <a href="#a098257ee6f13dbb79be07075244d9930">More...</a><br /></td></tr>
<tr class="separator:a098257ee6f13dbb79be07075244d9930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57dbbb584122c6cfa292bb79d8fcd7ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a57dbbb584122c6cfa292bb79d8fcd7ad">pop</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;vlist)</td></tr>
<tr class="memdesc:a57dbbb584122c6cfa292bb79d8fcd7ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">pop (restore) the estimate a subset of the variables from the stack  <a href="#a57dbbb584122c6cfa292bb79d8fcd7ad">More...</a><br /></td></tr>
<tr class="separator:a57dbbb584122c6cfa292bb79d8fcd7ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6688f8636bf89ef919d72947692d59c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aa6688f8636bf89ef919d72947692d59c">pop</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vlist)</td></tr>
<tr class="memdesc:aa6688f8636bf89ef919d72947692d59c"><td class="mdescLeft">&#160;</td><td class="mdescRight">pop (restore) the estimate a subset of the variables from the stack  <a href="#aa6688f8636bf89ef919d72947692d59c">More...</a><br /></td></tr>
<tr class="separator:aa6688f8636bf89ef919d72947692d59c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2f7f62ebe17b40e050f0525db64355b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ad2f7f62ebe17b40e050f0525db64355b">pop</a> ()</td></tr>
<tr class="memdesc:ad2f7f62ebe17b40e050f0525db64355b"><td class="mdescLeft">&#160;</td><td class="mdescRight">pop (restore) the estimate of the active vertices from the stack  <a href="#ad2f7f62ebe17b40e050f0525db64355b">More...</a><br /></td></tr>
<tr class="separator:ad2f7f62ebe17b40e050f0525db64355b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08833d6f9ae487f5608f6113f3635b6b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a08833d6f9ae487f5608f6113f3635b6b">push</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;vlist)</td></tr>
<tr class="memdesc:a08833d6f9ae487f5608f6113f3635b6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">push the estimate of a subset of the variables onto a stack  <a href="#a08833d6f9ae487f5608f6113f3635b6b">More...</a><br /></td></tr>
<tr class="separator:a08833d6f9ae487f5608f6113f3635b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9a5fd64764e61d99e8a90734118a8bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ac9a5fd64764e61d99e8a90734118a8bf">push</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vlist)</td></tr>
<tr class="memdesc:ac9a5fd64764e61d99e8a90734118a8bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">push the estimate of a subset of the variables onto a stack  <a href="#ac9a5fd64764e61d99e8a90734118a8bf">More...</a><br /></td></tr>
<tr class="separator:ac9a5fd64764e61d99e8a90734118a8bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c121d69052291775860d06507aba698"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a4c121d69052291775860d06507aba698">push</a> ()</td></tr>
<tr class="memdesc:a4c121d69052291775860d06507aba698"><td class="mdescLeft">&#160;</td><td class="mdescRight">push all the active vertices onto a stack  <a href="#a4c121d69052291775860d06507aba698">More...</a><br /></td></tr>
<tr class="separator:a4c121d69052291775860d06507aba698"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeb1bffea0c80d98b6650cbf51be2b80"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aaeb1bffea0c80d98b6650cbf51be2b80">removeComputeErrorAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:aaeb1bffea0c80d98b6650cbf51be2b80"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove an action that should no longer be execured before computing the error vectors  <a href="#aaeb1bffea0c80d98b6650cbf51be2b80">More...</a><br /></td></tr>
<tr class="separator:aaeb1bffea0c80d98b6650cbf51be2b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fb2a5e2b250bf2530a600f6dcaad03f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a0fb2a5e2b250bf2530a600f6dcaad03f">removeVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *v)</td></tr>
<tr class="memdesc:a0fb2a5e2b250bf2530a600f6dcaad03f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a vertex.  <a href="#a0fb2a5e2b250bf2530a600f6dcaad03f">More...</a><br /></td></tr>
<tr class="separator:a0fb2a5e2b250bf2530a600f6dcaad03f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ed7404ef361b479c75a0baf34e0a2bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a5ed7404ef361b479c75a0baf34e0a2bd">setAlgorithm</a> (<a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a> *<a class="el" href="classg2o_1_1_sparse_optimizer.html#aa08ce344e31a461426289a638b33332a">algorithm</a>)</td></tr>
<tr class="separator:a5ed7404ef361b479c75a0baf34e0a2bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a775fe12d7df941acbbd86bcf838f0f3c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a775fe12d7df941acbbd86bcf838f0f3c">setComputeBatchStatistics</a> (bool <a class="el" href="classg2o_1_1_sparse_optimizer.html#ad8dfc896595b27ea0315862acb54f5f2">computeBatchStatistics</a>)</td></tr>
<tr class="separator:a775fe12d7df941acbbd86bcf838f0f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32afd0ab949f170297b4a59f0d9eab81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a32afd0ab949f170297b4a59f0d9eab81">setForceStopFlag</a> (bool *flag)</td></tr>
<tr class="memdesc:a32afd0ab949f170297b4a59f0d9eab81"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets a variable checked at every iteration to force a user stop.  <a href="#a32afd0ab949f170297b4a59f0d9eab81">More...</a><br /></td></tr>
<tr class="separator:a32afd0ab949f170297b4a59f0d9eab81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8af902464774ec3d3910a3674791714"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ab8af902464774ec3d3910a3674791714">setToOrigin</a> ()</td></tr>
<tr class="memdesc:ab8af902464774ec3d3910a3674791714"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets all vertices to their origin.  <a href="#ab8af902464774ec3d3910a3674791714">More...</a><br /></td></tr>
<tr class="separator:ab8af902464774ec3d3910a3674791714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a422f4c5c78a0c475f4998e24ee173cc7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a422f4c5c78a0c475f4998e24ee173cc7">setVerbose</a> (bool <a class="el" href="classg2o_1_1_sparse_optimizer.html#a8f0a83518efcba45f769b8b221885b54">verbose</a>)</td></tr>
<tr class="separator:a422f4c5c78a0c475f4998e24ee173cc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa505e19f70caa4f0a8fe8eccdbcd768"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aaa505e19f70caa4f0a8fe8eccdbcd768">solver</a> ()</td></tr>
<tr class="separator:aaa505e19f70caa4f0a8fe8eccdbcd768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00492515b99393555aec477ab486195b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a00492515b99393555aec477ab486195b">SparseOptimizer</a> ()</td></tr>
<tr class="separator:a00492515b99393555aec477ab486195b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae592f525151d0cfb5bde3e7213f7ab11"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ae592f525151d0cfb5bde3e7213f7ab11">terminate</a> ()</td></tr>
<tr class="memdesc:ae592f525151d0cfb5bde3e7213f7ab11"><td class="mdescLeft">&#160;</td><td class="mdescRight">if external stop flag is given, return its state. False otherwise  <a href="#ae592f525151d0cfb5bde3e7213f7ab11">More...</a><br /></td></tr>
<tr class="separator:ae592f525151d0cfb5bde3e7213f7ab11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae971d068585055973798f93ac2363d94"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ae971d068585055973798f93ac2363d94">updateInitialization</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset, <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;eset)</td></tr>
<tr class="memdesc:ae971d068585055973798f93ac2363d94"><td class="mdescLeft">&#160;</td><td class="mdescRight">HACK updating the internal structures for online processing.  <a href="#ae971d068585055973798f93ac2363d94">More...</a><br /></td></tr>
<tr class="separator:ae971d068585055973798f93ac2363d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f0a83518efcba45f769b8b221885b54"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a8f0a83518efcba45f769b8b221885b54">verbose</a> () const</td></tr>
<tr class="memdesc:a8f0a83518efcba45f769b8b221885b54"><td class="mdescLeft">&#160;</td><td class="mdescRight">verbose information during optimization  <a href="#a8f0a83518efcba45f769b8b221885b54">More...</a><br /></td></tr>
<tr class="separator:a8f0a83518efcba45f769b8b221885b54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c3602d865a05486a94ce48c6839bbd6"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a3c3602d865a05486a94ce48c6839bbd6">~SparseOptimizer</a> ()</td></tr>
<tr class="separator:a3c3602d865a05486a94ce48c6839bbd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structg2o_1_1_optimizable_graph"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structg2o_1_1_optimizable_graph')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structg2o_1_1_optimizable_graph.html">g2o::OptimizableGraph</a></td></tr>
<tr class="memitem:a6831ed69fce3dba691f53302a2813070 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a6831ed69fce3dba691f53302a2813070">addEdge</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">HyperGraph::Edge</a> *e)</td></tr>
<tr class="memdesc:a6831ed69fce3dba691f53302a2813070 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a new edge.  <a href="structg2o_1_1_optimizable_graph.html#a6831ed69fce3dba691f53302a2813070">More...</a><br /></td></tr>
<tr class="separator:a6831ed69fce3dba691f53302a2813070 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea1342d9ab0bf717710c8f78b74ff25 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#acea1342d9ab0bf717710c8f78b74ff25">addGraph</a> (<a class="el" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a> *g)</td></tr>
<tr class="memdesc:acea1342d9ab0bf717710c8f78b74ff25 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds all edges and vertices of the graph <em>g</em> to this graph.  <a href="structg2o_1_1_optimizable_graph.html#acea1342d9ab0bf717710c8f78b74ff25">More...</a><br /></td></tr>
<tr class="separator:acea1342d9ab0bf717710c8f78b74ff25 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4a7c038288097b0b1619c609cf40e90 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ad4a7c038288097b0b1619c609cf40e90">addParameter</a> (<a class="el" href="classg2o_1_1_parameter.html">Parameter</a> *p)</td></tr>
<tr class="separator:ad4a7c038288097b0b1619c609cf40e90 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6db1ecbc582a7b79e1633eefc2109b26 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a6db1ecbc582a7b79e1633eefc2109b26">addPostIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a6db1ecbc582a7b79e1633eefc2109b26 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an action to be executed after each iteration  <a href="structg2o_1_1_optimizable_graph.html#a6db1ecbc582a7b79e1633eefc2109b26">More...</a><br /></td></tr>
<tr class="separator:a6db1ecbc582a7b79e1633eefc2109b26 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ab7899a0ff7bc29177e9447a10d508c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2ab7899a0ff7bc29177e9447a10d508c">addPreIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a2ab7899a0ff7bc29177e9447a10d508c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an action to be executed before each iteration  <a href="structg2o_1_1_optimizable_graph.html#a2ab7899a0ff7bc29177e9447a10d508c">More...</a><br /></td></tr>
<tr class="separator:a2ab7899a0ff7bc29177e9447a10d508c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0b93774ce1dfa0dfd501c86ad4f773e inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ae0b93774ce1dfa0dfd501c86ad4f773e">addVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *v, <a class="el" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a> *userData)</td></tr>
<tr class="memdesc:ae0b93774ce1dfa0dfd501c86ad4f773e inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a new vertex.  <a href="structg2o_1_1_optimizable_graph.html#ae0b93774ce1dfa0dfd501c86ad4f773e">More...</a><br /></td></tr>
<tr class="separator:ae0b93774ce1dfa0dfd501c86ad4f773e inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6f41f49fe6148fbe17133d10bf29b4c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">addVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *v)</td></tr>
<tr class="memdesc:ac6f41f49fe6148fbe17133d10bf29b4c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a vertex to the graph.  <a href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">More...</a><br /></td></tr>
<tr class="separator:ac6f41f49fe6148fbe17133d10bf29b4c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0d53383e22347aba1bf76c1ce492f51 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#af0d53383e22347aba1bf76c1ce492f51">chi2</a> () const</td></tr>
<tr class="memdesc:af0d53383e22347aba1bf76c1ce492f51 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the chi2 of the current configuration  <a href="structg2o_1_1_optimizable_graph.html#af0d53383e22347aba1bf76c1ce492f51">More...</a><br /></td></tr>
<tr class="separator:af0d53383e22347aba1bf76c1ce492f51 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15171b6d335115858e2e86dcf576ba78 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a15171b6d335115858e2e86dcf576ba78">clearParameters</a> ()</td></tr>
<tr class="memdesc:a15171b6d335115858e2e86dcf576ba78 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove the parameters of the graph  <a href="structg2o_1_1_optimizable_graph.html#a15171b6d335115858e2e86dcf576ba78">More...</a><br /></td></tr>
<tr class="separator:a15171b6d335115858e2e86dcf576ba78 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a396e552ed234fe625e3b6785efa9c86d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">std::set&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a396e552ed234fe625e3b6785efa9c86d">dimensions</a> () const</td></tr>
<tr class="memdesc:a396e552ed234fe625e3b6785efa9c86d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">iterates over all vertices and returns a set of all the vertex dimensions in the graph  <a href="structg2o_1_1_optimizable_graph.html#a396e552ed234fe625e3b6785efa9c86d">More...</a><br /></td></tr>
<tr class="separator:a396e552ed234fe625e3b6785efa9c86d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74cbd91a3e05c1f497b4675b0e70113a inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a74cbd91a3e05c1f497b4675b0e70113a">discardTop</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset)</td></tr>
<tr class="memdesc:a74cbd91a3e05c1f497b4675b0e70113a inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">ignore the latest stored element on the stack, remove it from the stack but do not restore the estimate  <a href="structg2o_1_1_optimizable_graph.html#a74cbd91a3e05c1f497b4675b0e70113a">More...</a><br /></td></tr>
<tr class="separator:a74cbd91a3e05c1f497b4675b0e70113a inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b957f752c6afe7bc76baf00129f854e inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a5b957f752c6afe7bc76baf00129f854e">isSolverSuitable</a> (const <a class="el" href="structg2o_1_1_optimization_algorithm_property.html">OptimizationAlgorithmProperty</a> &amp;solverProperty, const std::set&lt; int &gt; &amp;vertDims=std::set&lt; int &gt;()) const</td></tr>
<tr class="memdesc:a5b957f752c6afe7bc76baf00129f854e inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">test whether a solver is suitable for optimizing this graph.  <a href="structg2o_1_1_optimizable_graph.html#a5b957f752c6afe7bc76baf00129f854e">More...</a><br /></td></tr>
<tr class="separator:a5b957f752c6afe7bc76baf00129f854e inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa669dbd1d6e34e49fecda711ff1b78c6 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#aa669dbd1d6e34e49fecda711ff1b78c6">jacobianWorkspace</a> ()</td></tr>
<tr class="memdesc:aa669dbd1d6e34e49fecda711ff1b78c6 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">the workspace for storing the Jacobians of the graph  <a href="structg2o_1_1_optimizable_graph.html#aa669dbd1d6e34e49fecda711ff1b78c6">More...</a><br /></td></tr>
<tr class="separator:aa669dbd1d6e34e49fecda711ff1b78c6 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21d73e7a39c731d19e6bb467cad59912 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a21d73e7a39c731d19e6bb467cad59912">jacobianWorkspace</a> () const</td></tr>
<tr class="separator:a21d73e7a39c731d19e6bb467cad59912 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34f4a170d58551ee9efac7a7a78fa833 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a34f4a170d58551ee9efac7a7a78fa833">load</a> (std::istream &amp;is, bool createEdges=true)</td></tr>
<tr class="memdesc:a34f4a170d58551ee9efac7a7a78fa833 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">load the graph from a stream. Uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> singleton for creating the vertices and edges.  <a href="structg2o_1_1_optimizable_graph.html#a34f4a170d58551ee9efac7a7a78fa833">More...</a><br /></td></tr>
<tr class="separator:a34f4a170d58551ee9efac7a7a78fa833 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a305fe91c405fc960df051d9581e524bc inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a305fe91c405fc960df051d9581e524bc">load</a> (const char *filename, bool createEdges=true)</td></tr>
<tr class="separator:a305fe91c405fc960df051d9581e524bc inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec95bac1366d39b40703f2aca375f505 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#aec95bac1366d39b40703f2aca375f505">maxDimension</a> () const</td></tr>
<tr class="memdesc:aec95bac1366d39b40703f2aca375f505 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the maximum dimension of all vertices in the graph  <a href="structg2o_1_1_optimizable_graph.html#aec95bac1366d39b40703f2aca375f505">More...</a><br /></td></tr>
<tr class="separator:aec95bac1366d39b40703f2aca375f505 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc459c08fd5e743cf2072e740ffc5025 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#acc459c08fd5e743cf2072e740ffc5025">OptimizableGraph</a> ()</td></tr>
<tr class="memdesc:acc459c08fd5e743cf2072e740ffc5025 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">empty constructor  <a href="structg2o_1_1_optimizable_graph.html#acc459c08fd5e743cf2072e740ffc5025">More...</a><br /></td></tr>
<tr class="separator:acc459c08fd5e743cf2072e740ffc5025 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9506880a9289353ddd2277fafb76ffd inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_parameter.html">Parameter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ad9506880a9289353ddd2277fafb76ffd">parameter</a> (int id)</td></tr>
<tr class="separator:ad9506880a9289353ddd2277fafb76ffd inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8d41dc0830f1ae07e9cb4a8341d3ffb inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ac8d41dc0830f1ae07e9cb4a8341d3ffb">postIteration</a> (int)</td></tr>
<tr class="memdesc:ac8d41dc0830f1ae07e9cb4a8341d3ffb inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">called at the end of an iteration (argument is the number of the iteration)  <a href="structg2o_1_1_optimizable_graph.html#ac8d41dc0830f1ae07e9cb4a8341d3ffb">More...</a><br /></td></tr>
<tr class="separator:ac8d41dc0830f1ae07e9cb4a8341d3ffb inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad295e7f06651db627b8ebde3d8898bab inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ad295e7f06651db627b8ebde3d8898bab">preIteration</a> (int)</td></tr>
<tr class="memdesc:ad295e7f06651db627b8ebde3d8898bab inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">called at the beginning of an iteration (argument is the number of the iteration)  <a href="structg2o_1_1_optimizable_graph.html#ad295e7f06651db627b8ebde3d8898bab">More...</a><br /></td></tr>
<tr class="separator:ad295e7f06651db627b8ebde3d8898bab inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a172f2f5c8ec5872d5bc34077c6391839 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a172f2f5c8ec5872d5bc34077c6391839">removePostIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a172f2f5c8ec5872d5bc34077c6391839 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove an action that should no longer be execured after each iteration  <a href="structg2o_1_1_optimizable_graph.html#a172f2f5c8ec5872d5bc34077c6391839">More...</a><br /></td></tr>
<tr class="separator:a172f2f5c8ec5872d5bc34077c6391839 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27f5ee7016b20bc6def24a2726fc824b inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a27f5ee7016b20bc6def24a2726fc824b">removePreIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a27f5ee7016b20bc6def24a2726fc824b inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove an action that should no longer be execured before each iteration  <a href="structg2o_1_1_optimizable_graph.html#a27f5ee7016b20bc6def24a2726fc824b">More...</a><br /></td></tr>
<tr class="separator:a27f5ee7016b20bc6def24a2726fc824b inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abee0b60ade0644904a489564def8ad1d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d">save</a> (std::ostream &amp;os, int level=0) const</td></tr>
<tr class="memdesc:abee0b60ade0644904a489564def8ad1d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">save the graph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system.  <a href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d">More...</a><br /></td></tr>
<tr class="separator:abee0b60ade0644904a489564def8ad1d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29c40a9cb3bf3660e59d55cfad264c71 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a29c40a9cb3bf3660e59d55cfad264c71">save</a> (const char *filename, int level=0) const</td></tr>
<tr class="memdesc:a29c40a9cb3bf3660e59d55cfad264c71 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">function provided for convenience, see <a class="el" href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d" title="save the graph to a stream. Again uses the Factory system. ">save()</a> above  <a href="structg2o_1_1_optimizable_graph.html#a29c40a9cb3bf3660e59d55cfad264c71">More...</a><br /></td></tr>
<tr class="separator:a29c40a9cb3bf3660e59d55cfad264c71 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3852abe611f2fd90a0a05979987615a2 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a3852abe611f2fd90a0a05979987615a2">saveEdge</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a> *e) const</td></tr>
<tr class="separator:a3852abe611f2fd90a0a05979987615a2 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcf211f9c7bf3ee9dab65b130807402c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#adcf211f9c7bf3ee9dab65b130807402c">saveSubset</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset, int level=0)</td></tr>
<tr class="memdesc:adcf211f9c7bf3ee9dab65b130807402c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">save a subgraph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system.  <a href="structg2o_1_1_optimizable_graph.html#adcf211f9c7bf3ee9dab65b130807402c">More...</a><br /></td></tr>
<tr class="separator:adcf211f9c7bf3ee9dab65b130807402c inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a08383ab953d435eaaca6231b64c3b6 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2a08383ab953d435eaaca6231b64c3b6">saveSubset</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;eset)</td></tr>
<tr class="memdesc:a2a08383ab953d435eaaca6231b64c3b6 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">save a subgraph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system.  <a href="structg2o_1_1_optimizable_graph.html#a2a08383ab953d435eaaca6231b64c3b6">More...</a><br /></td></tr>
<tr class="separator:a2a08383ab953d435eaaca6231b64c3b6 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a221656c91e253b4246553a33e33c3e6b inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a221656c91e253b4246553a33e33c3e6b">saveVertex</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a> *v) const</td></tr>
<tr class="separator:a221656c91e253b4246553a33e33c3e6b inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07514f6186d19b6d893a771c0bb6abf9 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a07514f6186d19b6d893a771c0bb6abf9">setFixed</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset, bool fixed)</td></tr>
<tr class="memdesc:a07514f6186d19b6d893a771c0bb6abf9 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">fixes/releases a set of vertices  <a href="structg2o_1_1_optimizable_graph.html#a07514f6186d19b6d893a771c0bb6abf9">More...</a><br /></td></tr>
<tr class="separator:a07514f6186d19b6d893a771c0bb6abf9 inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaa77a4624619237563fe94cfd7b76fd inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#afaa77a4624619237563fe94cfd7b76fd">setRenamedTypesFromString</a> (const std::string &amp;types)</td></tr>
<tr class="memdesc:afaa77a4624619237563fe94cfd7b76fd inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the renamed types lookup from a string, format is for example: VERTEX_CAM=VERTEX_SE3:EXPMAP,EDGE_PROJECT_P2MC=EDGE_PROJECT_XYZ:EXPMAP This will change the occurance of VERTEX_CAM in the file to VERTEX_SE3:EXPMAP  <a href="structg2o_1_1_optimizable_graph.html#afaa77a4624619237563fe94cfd7b76fd">More...</a><br /></td></tr>
<tr class="separator:afaa77a4624619237563fe94cfd7b76fd inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23dbb64bd31deb3952d4149518e663ce inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a23dbb64bd31deb3952d4149518e663ce">verifyInformationMatrices</a> (bool verbose=false) const</td></tr>
<tr class="memdesc:a23dbb64bd31deb3952d4149518e663ce inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">verify that all the information of the edges are semi positive definite, i.e., all Eigenvalues are &gt;= 0.  <a href="structg2o_1_1_optimizable_graph.html#a23dbb64bd31deb3952d4149518e663ce">More...</a><br /></td></tr>
<tr class="separator:a23dbb64bd31deb3952d4149518e663ce inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19e014e8ec2e9a6e894da8c3a8f8e50d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a19e014e8ec2e9a6e894da8c3a8f8e50d">vertex</a> (int id)</td></tr>
<tr class="memdesc:a19e014e8ec2e9a6e894da8c3a8f8e50d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the vertex number <em>id</em> appropriately casted  <a href="structg2o_1_1_optimizable_graph.html#a19e014e8ec2e9a6e894da8c3a8f8e50d">More...</a><br /></td></tr>
<tr class="separator:a19e014e8ec2e9a6e894da8c3a8f8e50d inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e55fa99a49824af2711c0fcaf02ac1a inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a0e55fa99a49824af2711c0fcaf02ac1a">vertex</a> (int id) const</td></tr>
<tr class="memdesc:a0e55fa99a49824af2711c0fcaf02ac1a inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the vertex number <em>id</em> appropriately casted  <a href="structg2o_1_1_optimizable_graph.html#a0e55fa99a49824af2711c0fcaf02ac1a">More...</a><br /></td></tr>
<tr class="separator:a0e55fa99a49824af2711c0fcaf02ac1a inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98f4399dfc23cac840a64ae2d0d3898f inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a98f4399dfc23cac840a64ae2d0d3898f">~OptimizableGraph</a> ()</td></tr>
<tr class="separator:a98f4399dfc23cac840a64ae2d0d3898f inherit pub_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_hyper_graph"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_hyper_graph')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_hyper_graph.html">g2o::HyperGraph</a></td></tr>
<tr class="memitem:a74f0d7392e67762a85799db72a58a94c inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a74f0d7392e67762a85799db72a58a94c">changeId</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *v, int newId)</td></tr>
<tr class="memdesc:a74f0d7392e67762a85799db72a58a94c inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">changes the id of a vertex already in the graph, and updates the bookkeeping @ returns false if the vertex is not in the graph;  <a href="classg2o_1_1_hyper_graph.html#a74f0d7392e67762a85799db72a58a94c">More...</a><br /></td></tr>
<tr class="separator:a74f0d7392e67762a85799db72a58a94c inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4edfd2ef4bf235cf78031c505cfd2fcc inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a4edfd2ef4bf235cf78031c505cfd2fcc">edges</a> () const</td></tr>
<tr class="separator:a4edfd2ef4bf235cf78031c505cfd2fcc inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f9f023fe2fb491ef9af873b9e683006 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a2f9f023fe2fb491ef9af873b9e683006">edges</a> ()</td></tr>
<tr class="separator:a2f9f023fe2fb491ef9af873b9e683006 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a833632b111cfc7cf08b842ae3cb43d41 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a833632b111cfc7cf08b842ae3cb43d41">HyperGraph</a> ()</td></tr>
<tr class="memdesc:a833632b111cfc7cf08b842ae3cb43d41 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructs an empty hyper graph  <a href="classg2o_1_1_hyper_graph.html#a833632b111cfc7cf08b842ae3cb43d41">More...</a><br /></td></tr>
<tr class="separator:a833632b111cfc7cf08b842ae3cb43d41 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33e5a60705ce673d647aa1613da9d99b inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a33e5a60705ce673d647aa1613da9d99b">removeEdge</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> *e)</td></tr>
<tr class="memdesc:a33e5a60705ce673d647aa1613da9d99b inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">removes a vertex from the graph. Returns true on success (edge was present)  <a href="classg2o_1_1_hyper_graph.html#a33e5a60705ce673d647aa1613da9d99b">More...</a><br /></td></tr>
<tr class="separator:a33e5a60705ce673d647aa1613da9d99b inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab07fe8bd9982a66ba34e83dff8317ea2 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">vertex</a> (int id)</td></tr>
<tr class="memdesc:ab07fe8bd9982a66ba34e83dff8317ea2 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present  <a href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">More...</a><br /></td></tr>
<tr class="separator:ab07fe8bd9982a66ba34e83dff8317ea2 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac117806d17a7e7ad7f8db42f2864cac9 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#ac117806d17a7e7ad7f8db42f2864cac9">vertex</a> (int id) const</td></tr>
<tr class="memdesc:ac117806d17a7e7ad7f8db42f2864cac9 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present  <a href="classg2o_1_1_hyper_graph.html#ac117806d17a7e7ad7f8db42f2864cac9">More...</a><br /></td></tr>
<tr class="separator:ac117806d17a7e7ad7f8db42f2864cac9 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95fcf7cd9d89562b2c26d99ede3548ed inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a95fcf7cd9d89562b2c26d99ede3548ed">vertices</a> () const</td></tr>
<tr class="separator:a95fcf7cd9d89562b2c26d99ede3548ed inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a650107c875ef6f43d438d7d3e2ddf797 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a650107c875ef6f43d438d7d3e2ddf797">vertices</a> ()</td></tr>
<tr class="separator:a650107c875ef6f43d438d7d3e2ddf797 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef6e1d65e0f9171a518bce3fc559693 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a0ef6e1d65e0f9171a518bce3fc559693">~HyperGraph</a> ()</td></tr>
<tr class="memdesc:a0ef6e1d65e0f9171a518bce3fc559693 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">destroys the hyper-graph and all the vertices of the graph  <a href="classg2o_1_1_hyper_graph.html#a0ef6e1d65e0f9171a518bce3fc559693">More...</a><br /></td></tr>
<tr class="separator:a0ef6e1d65e0f9171a518bce3fc559693 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a8c6af9785e85153ade1490beacad73ce"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a8c6af9785e85153ade1490beacad73ce">buildIndexMapping</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;vlist)</td></tr>
<tr class="memdesc:a8c6af9785e85153ade1490beacad73ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">builds the mapping of the active vertices to the (block) row / column in the Hessian  <a href="#a8c6af9785e85153ade1490beacad73ce">More...</a><br /></td></tr>
<tr class="separator:a8c6af9785e85153ade1490beacad73ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6f1f4ad2b1fd50b8019c6abb89ac6a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#ab6f1f4ad2b1fd50b8019c6abb89ac6a8">clearIndexMapping</a> ()</td></tr>
<tr class="separator:ab6f1f4ad2b1fd50b8019c6abb89ac6a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a8c6f08bc9b8a4e520aa73198268991"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a8a8c6f08bc9b8a4e520aa73198268991">sortVectorContainers</a> ()</td></tr>
<tr class="separator:a8a8c6f08bc9b8a4e520aa73198268991"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a3207df163943bc1672fc7872964a6d6c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">EdgeContainer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a3207df163943bc1672fc7872964a6d6c">_activeEdges</a></td></tr>
<tr class="memdesc:a3207df163943bc1672fc7872964a6d6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">sorted according to EdgeIDCompare  <a href="#a3207df163943bc1672fc7872964a6d6c">More...</a><br /></td></tr>
<tr class="separator:a3207df163943bc1672fc7872964a6d6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a805e1db97802980fa4dfef95cfa5e63e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a805e1db97802980fa4dfef95cfa5e63e">_activeVertices</a></td></tr>
<tr class="memdesc:a805e1db97802980fa4dfef95cfa5e63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">sorted according to VertexIDCompare  <a href="#a805e1db97802980fa4dfef95cfa5e63e">More...</a><br /></td></tr>
<tr class="separator:a805e1db97802980fa4dfef95cfa5e63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665d4ba54db76a1174bfc85a6dbc5127"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a665d4ba54db76a1174bfc85a6dbc5127">_algorithm</a></td></tr>
<tr class="separator:a665d4ba54db76a1174bfc85a6dbc5127"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21215378d9e8de28aee8d55b4d25ff89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceg2o.html#a526b32fde21f83173acb2bb29db68275">BatchStatisticsContainer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a21215378d9e8de28aee8d55b4d25ff89">_batchStatistics</a></td></tr>
<tr class="memdesc:a21215378d9e8de28aee8d55b4d25ff89"><td class="mdescLeft">&#160;</td><td class="mdescRight">global statistics of the optimizer, e.g., timing, num-non-zeros  <a href="#a21215378d9e8de28aee8d55b4d25ff89">More...</a><br /></td></tr>
<tr class="separator:a21215378d9e8de28aee8d55b4d25ff89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bd44c498c4d983c092f23673de14d5d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a3bd44c498c4d983c092f23673de14d5d">_computeBatchStatistics</a></td></tr>
<tr class="separator:a3bd44c498c4d983c092f23673de14d5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4a9f9b7d875ee40cae55f98d3437ab"><td class="memItemLeft" align="right" valign="top">bool *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#aac4a9f9b7d875ee40cae55f98d3437ab">_forceStopFlag</a></td></tr>
<tr class="separator:aac4a9f9b7d875ee40cae55f98d3437ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a488b95a90a61454c787e9c13458e510b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a488b95a90a61454c787e9c13458e510b">_ivMap</a></td></tr>
<tr class="separator:a488b95a90a61454c787e9c13458e510b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41b3803182a4db6c0ff8c8d4352dd149"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#a41b3803182a4db6c0ff8c8d4352dd149">_verbose</a></td></tr>
<tr class="separator:a41b3803182a4db6c0ff8c8d4352dd149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_structg2o_1_1_optimizable_graph"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_structg2o_1_1_optimizable_graph')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="structg2o_1_1_optimizable_graph.html">g2o::OptimizableGraph</a></td></tr>
<tr class="memitem:a260451b25094e5e929cc2841e31242f4 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a260451b25094e5e929cc2841e31242f4">_edge_has_id</a></td></tr>
<tr class="separator:a260451b25094e5e929cc2841e31242f4 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e6a371ad7709692e52886ecf3e7250c inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">HyperGraphActionSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a5e6a371ad7709692e52886ecf3e7250c">_graphActions</a></td></tr>
<tr class="separator:a5e6a371ad7709692e52886ecf3e7250c inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a161c01a29d09cca22e223ab2048eaba8 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a161c01a29d09cca22e223ab2048eaba8">_jacobianWorkspace</a></td></tr>
<tr class="separator:a161c01a29d09cca22e223ab2048eaba8 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93a7f05b31bca9ccaa214499f042739a inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">long long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a93a7f05b31bca9ccaa214499f042739a">_nextEdgeId</a></td></tr>
<tr class="separator:a93a7f05b31bca9ccaa214499f042739a inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a7974befcd934f28a36de3999423d21 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_parameter_container.html">ParameterContainer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a></td></tr>
<tr class="separator:a3a7974befcd934f28a36de3999423d21 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a726ab6d0b04b12f835b690d54e061731 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a726ab6d0b04b12f835b690d54e061731">_renamedTypesLookup</a></td></tr>
<tr class="separator:a726ab6d0b04b12f835b690d54e061731 inherit pro_attribs_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classg2o_1_1_hyper_graph"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classg2o_1_1_hyper_graph')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classg2o_1_1_hyper_graph.html">g2o::HyperGraph</a></td></tr>
<tr class="memitem:afe4ae6e9ef05c8bded2b1b30e1886b36 inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#afe4ae6e9ef05c8bded2b1b30e1886b36">_edges</a></td></tr>
<tr class="separator:afe4ae6e9ef05c8bded2b1b30e1886b36 inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83132c77c8d0896581d168cbc72f673a inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a83132c77c8d0896581d168cbc72f673a">_vertices</a></td></tr>
<tr class="separator:a83132c77c8d0896581d168cbc72f673a inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:af974cb94744550cc732d61f7fd7d63ed"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_sparse_optimizer.html#af974cb94744550cc732d61f7fd7d63ed">ActivePathCostFunction</a></td></tr>
<tr class="separator:af974cb94744550cc732d61f7fd7d63ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_structg2o_1_1_optimizable_graph"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_structg2o_1_1_optimizable_graph')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="structg2o_1_1_optimizable_graph.html">g2o::OptimizableGraph</a></td></tr>
<tr class="memitem:ab4ee0fc3ecd31852276ded40b62e9c76 inherit pub_static_methods_structg2o_1_1_optimizable_graph"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ab4ee0fc3ecd31852276ded40b62e9c76">initMultiThreading</a> ()</td></tr>
<tr class="memdesc:ab4ee0fc3ecd31852276ded40b62e9c76 inherit pub_static_methods_structg2o_1_1_optimizable_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Eigen starting from version 3.1 requires that we call an initialize function, if we perform calls to Eigen from several threads.  <a href="structg2o_1_1_optimizable_graph.html#ab4ee0fc3ecd31852276ded40b62e9c76">More...</a><br /></td></tr>
<tr class="separator:ab4ee0fc3ecd31852276ded40b62e9c76 inherit pub_static_methods_structg2o_1_1_optimizable_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a085529b092eb7fe4970e0cd6c3bd18bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a085529b092eb7fe4970e0cd6c3bd18bfa040ef6eacdbc7ede37bc5280dc5a2814"></a>AT_COMPUTEACTIVERROR&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a085529b092eb7fe4970e0cd6c3bd18bfa9e4fe5403aed6a2ac8b31651c9379098"></a>AT_NUM_ELEMENTS&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a00492515b99393555aec477ab486195b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">g2o::SparseOptimizer::SparseOptimizer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a3c3602d865a05486a94ce48c6839bbd6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::SparseOptimizer::~SparseOptimizer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ab64abc4e84ba0fd8f55dbd12477ef76d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::SparseOptimizer::activeChi2 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>returns the cached chi2 of the active portion of the graph </p>

</div>
</div>
<a id="a44edae09e8d4b2b1f7ed5b9d791f9459"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">EdgeContainer</a>&amp; g2o::SparseOptimizer::activeEdges </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the edges active in the current optimization </p>

</div>
</div>
<a id="a9a8950d87cbbfe991b5f6381db19593c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::SparseOptimizer::activeRobustChi2 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>returns the cached chi2 of the active portion of the graph. </p>
<p>In contrast to <a class="el" href="classg2o_1_1_sparse_optimizer.html#ab64abc4e84ba0fd8f55dbd12477ef76d" title="returns the cached chi2 of the active portion of the graph ">activeChi2()</a> this functions considers the weighting of the error according to the robustification of the error functions. </p>

</div>
</div>
<a id="a9843e19ec85c9f6598e52d7223e54e75"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a>&amp; g2o::SparseOptimizer::activeVertices </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the vertices active in the current optimization </p>

</div>
</div>
<a id="a43517d9f9f23ba6041061c57dddd916d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::addComputeErrorAction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *&#160;</td>
          <td class="paramname"><em>action</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>add an action to be executed before the error vectors are computed </p>

</div>
</div>
<a id="aa08ce344e31a461426289a638b33332a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a>* g2o::SparseOptimizer::algorithm </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the solver used by the optimizer </p>

</div>
</div>
<a id="a7eede0614bcccf8707480c53071da8f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespaceg2o.html#a526b32fde21f83173acb2bb29db68275">BatchStatisticsContainer</a>&amp; g2o::SparseOptimizer::batchStatistics </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Linearizes the system by computing the Jacobians for the nodes and edges in the graph. </p>
<p>returns the set of batch statistics about the optimisation </p>

</div>
</div>
<a id="aa93ecf8d3b99e2eef3709a5c70cc8632"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceg2o.html#a526b32fde21f83173acb2bb29db68275">BatchStatisticsContainer</a>&amp; g2o::SparseOptimizer::batchStatistics </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>returns the set of batch statistics about the optimisation </p>

</div>
</div>
<a id="a8c6af9785e85153ade1490beacad73ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::buildIndexMapping </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;&#160;</td>
          <td class="paramname"><em>vlist</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>builds the mapping of the active vertices to the (block) row / column in the Hessian </p>

</div>
</div>
<a id="a4881e4ac9ba9a58d4e249dc03ef9683d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>clears the graph, and polishes some intermediate structures Note that this only removes nodes / edges. </p>
<p>Parameters can be removed with <a class="el" href="structg2o_1_1_optimizable_graph.html#a15171b6d335115858e2e86dcf576ba78" title="remove the parameters of the graph ">clearParameters()</a>. </p>

<p>Reimplemented from <a class="el" href="classg2o_1_1_hyper_graph.html#a6b629dff2928dbd704ca81f24858e72f">g2o::HyperGraph</a>.</p>

</div>
</div>
<a id="ab6f1f4ad2b1fd50b8019c6abb89ac6a8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::clearIndexMapping </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a09572668aa85b75a5bebf7b66401ce8f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::computeActiveErrors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>computes the error vectors of all edges in the activeSet, and caches them </p>

</div>
</div>
<a id="ad8dfc896595b27ea0315862acb54f5f2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::computeBatchStatistics </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a59db9f16934d3b9f7a52511f0be1bb07"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::computeInitialGuess </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Propagates an initial guess from the vertex specified as origin. </p>
<p>It should be called after initializeOptimization(...), as it relies on the _activeVertices/_edges structures. It constructs a set of trees starting from the nodes in the graph which are fixed and eligible for preforming optimization. The trees are constructed by utlizing a cost-function specified. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">costFunction</td><td>the cost function used  maxDistance: the distance where to stop the search </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a2fba11c8572fce4a8c1bcca4fa3e43fb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::computeInitialGuess </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_estimate_propagator_cost.html">EstimatePropagatorCost</a> &amp;&#160;</td>
          <td class="paramname"><em>propagator</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Same as above but using a specific propagator. </p>

</div>
</div>
<a id="a656be8b8244a48dc1207f29eec77af5a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::computeMarginals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;&#160;</td>
          <td class="paramname"><em>spinv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>blockIndices</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>computes the blocks of the inverse of the specified pattern. </p>
<p>the pattern is given via pairs &lt;row, col&gt; of the blocks in the hessian </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blockIndices</td><td>the pattern </td></tr>
    <tr><td class="paramname">spinv</td><td>the sparse block matrix with the result </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if the operation is not supported by the solver </dd></dl>

</div>
</div>
<a id="ad9f7ba03f7f37114f757f34f67dd48e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::computeMarginals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;&#160;</td>
          <td class="paramname"><em>spinv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td>
          <td class="paramname"><em>vertex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>computes the inverse of the specified vertex. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vertex</td><td>the vertex whose state is to be marginalised </td></tr>
    <tr><td class="paramname">spinv</td><td>the sparse block matrix with the result </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if the operation is not supported by the solver </dd></dl>

</div>
</div>
<a id="a06bd3e9f1576dafeae317d2697c6f532"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::computeMarginals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;&#160;</td>
          <td class="paramname"><em>spinv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a> &amp;&#160;</td>
          <td class="paramname"><em>vertices</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>computes the inverse of the set specified vertices, assembled into a single covariance matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vertex</td><td>the pattern </td></tr>
    <tr><td class="paramname">spinv</td><td>the sparse block matrix with the result </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if the operation is not supported by the solver </dd></dl>

</div>
</div>
<a id="ac6344493dc9f66d5443759ff9f2abf6c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::discardTop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;&#160;</td>
          <td class="paramname"><em>vlist</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>ignore the latest stored element on the stack, remove it from the stack but do not restore the estimate </p>

</div>
</div>
<a id="a20ed9e9f1201bfb874456a8d30f169fb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::discardTop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>same as above, but for the active vertices </p>

<p>Reimplemented from <a class="el" href="structg2o_1_1_optimizable_graph.html#a368b5f22dbc57abd2f651a20d039f61c">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="a3b8397148c3b75539043df83412829bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SparseOptimizer::EdgeContainer::const_iterator g2o::SparseOptimizer::findActiveEdge </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">OptimizableGraph::Edge</a> *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>search for an edge in _activeEdges and return the iterator pointing to it getActiveEdges().end() if not found </p>

</div>
</div>
<a id="a801bd46818f64a45aea124789d6d9511"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SparseOptimizer::VertexContainer::const_iterator g2o::SparseOptimizer::findActiveVertex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>search for an edge in _activeVertices and return the iterator pointing to it getActiveVertices().end() if not found </p>

</div>
</div>
<a id="aad77b73bf7d192fcebf1daf9ae103036"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a> * g2o::SparseOptimizer::findGauge </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>finds a gauge in the graph to remove the undefined dof. </p>

</div>
</div>
<a id="aa3e5ee5263cd424aa763330d3a8a77c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool* g2o::SparseOptimizer::forceStopFlag </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac99e785f4822dd540b389ea179ce4f06"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::gaugeFreedom </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a93e11150d513979a6367518ecaf26e02"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a>&amp; g2o::SparseOptimizer::indexMapping </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the index mapping of the vertices </p>

</div>
</div>
<a id="a56c0c13954ac7204cfb031c141ece9ae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::initializeOptimization </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;&#160;</td>
          <td class="paramname"><em>eset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initializes the structures for optimizing a portion of the graph specified by a subset of edges. </p>
<p>Before calling it be sure to invoke marginalized() and fixed() to the vertices you want to include in the schur complement or to set as fixed during the optimization. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eset</td><td>the subgraph to be optimized. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if somethings goes wrong </dd></dl>

</div>
</div>
<a id="ab16dd36e32577ba5856239ce721ec70b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::initializeOptimization </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initializes the structures for optimizing a portion of the graph specified by a subset of vertices. </p>
<p>Before calling it be sure to invoke marginalized() and fixed() to the vertices you want to include in the schur complement or to set as fixed during the optimization. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vset</td><td>the subgraph to be optimized. </td></tr>
    <tr><td class="paramname">level</td><td>is the level (in multilevel optimization) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if somethings goes wrong </dd></dl>

</div>
</div>
<a id="ace3994bf5f403c7fa0305635aa598473"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::initializeOptimization </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initializes the structures for optimizing the whole graph. </p>
<p>Before calling it be sure to invoke marginalized() and fixed() to the vertices you want to include in the schur complement or to set as fixed during the optimization. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level</td><td>is the level (in multilevel optimization) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if somethings goes wrong </dd></dl>

</div>
</div>
<a id="a098257ee6f13dbb79be07075244d9930"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::SparseOptimizer::optimize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>online</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>starts one optimization run given the current configuration of the graph, and the current settings stored in the class instance. </p>
<p>It can be called only after initializeOptimization </p>

<p>Reimplemented from <a class="el" href="structg2o_1_1_optimizable_graph.html#ac1b2e36c05680dd3e60ed6f90dddf5d8">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="a57dbbb584122c6cfa292bb79d8fcd7ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::pop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;&#160;</td>
          <td class="paramname"><em>vlist</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>pop (restore) the estimate a subset of the variables from the stack </p>

</div>
</div>
<a id="aa6688f8636bf89ef919d72947692d59c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::pop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vlist</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pop (restore) the estimate a subset of the variables from the stack </p>

<p>Reimplemented from <a class="el" href="structg2o_1_1_optimizable_graph.html#a83425dbe755d22877ba692e93e04a6af">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="ad2f7f62ebe17b40e050f0525db64355b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::pop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pop (restore) the estimate of the active vertices from the stack </p>

<p>Reimplemented from <a class="el" href="structg2o_1_1_optimizable_graph.html#a8487f537b16ac7a2ee416ea294a1e22e">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="a08833d6f9ae487f5608f6113f3635b6b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::push </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">SparseOptimizer::VertexContainer</a> &amp;&#160;</td>
          <td class="paramname"><em>vlist</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>push the estimate of a subset of the variables onto a stack </p>

</div>
</div>
<a id="ac9a5fd64764e61d99e8a90734118a8bf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::push </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vlist</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>push the estimate of a subset of the variables onto a stack </p>

<p>Reimplemented from <a class="el" href="structg2o_1_1_optimizable_graph.html#a1d65a6854936147a92f7ba664302993e">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="a4c121d69052291775860d06507aba698"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::push </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>push all the active vertices onto a stack </p>

<p>Reimplemented from <a class="el" href="structg2o_1_1_optimizable_graph.html#a3db385b25818a5659d1fa8407cb0db45">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="aaeb1bffea0c80d98b6650cbf51be2b80"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::removeComputeErrorAction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *&#160;</td>
          <td class="paramname"><em>action</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>remove an action that should no longer be execured before computing the error vectors </p>

</div>
</div>
<a id="a0fb2a5e2b250bf2530a600f6dcaad03f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::removeVertex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove a vertex. </p>
<p>If the vertex is contained in the currently active set of vertices, then the internal temporary structures are cleaned, e.g., the index mapping is erased. In case you need the index mapping for manipulating the graph, you have to store it in your own copy. </p>

<p>Reimplemented from <a class="el" href="classg2o_1_1_hyper_graph.html#a97ab8302aa027d513253387bba9e0dd5">g2o::HyperGraph</a>.</p>

</div>
</div>
<a id="a5ed7404ef361b479c75a0baf34e0a2bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::setAlgorithm </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a> *&#160;</td>
          <td class="paramname"><em>algorithm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a775fe12d7df941acbbd86bcf838f0f3c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::setComputeBatchStatistics </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>computeBatchStatistics</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a32afd0ab949f170297b4a59f0d9eab81"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::setForceStopFlag </td>
          <td>(</td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>sets a variable checked at every iteration to force a user stop. </p>
<p>The iteration exits when the variable is true; </p>

</div>
</div>
<a id="ab8af902464774ec3d3910a3674791714"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::setToOrigin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>sets all vertices to their origin. </p>

</div>
</div>
<a id="a422f4c5c78a0c475f4998e24ee173cc7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::setVerbose </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>verbose</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aaa505e19f70caa4f0a8fe8eccdbcd768"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a>* g2o::SparseOptimizer::solver </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8a8c6f08bc9b8a4e520aa73198268991"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::SparseOptimizer::sortVectorContainers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ae592f525151d0cfb5bde3e7213f7ab11"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::terminate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>if external stop flag is given, return its state. False otherwise </p>

</div>
</div>
<a id="ae971d068585055973798f93ac2363d94"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::updateInitialization </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;&#160;</td>
          <td class="paramname"><em>eset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>HACK updating the internal structures for online processing. </p>

</div>
</div>
<a id="a8f0a83518efcba45f769b8b221885b54"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::verbose </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>verbose information during optimization </p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="af974cb94744550cc732d61f7fd7d63ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class ActivePathCostFunction</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a3207df163943bc1672fc7872964a6d6c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">EdgeContainer</a> g2o::SparseOptimizer::_activeEdges</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>sorted according to EdgeIDCompare </p>

</div>
</div>
<a id="a805e1db97802980fa4dfef95cfa5e63e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a> g2o::SparseOptimizer::_activeVertices</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>sorted according to VertexIDCompare </p>

</div>
</div>
<a id="a665d4ba54db76a1174bfc85a6dbc5127"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_optimization_algorithm.html">OptimizationAlgorithm</a>* g2o::SparseOptimizer::_algorithm</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a21215378d9e8de28aee8d55b4d25ff89"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceg2o.html#a526b32fde21f83173acb2bb29db68275">BatchStatisticsContainer</a> g2o::SparseOptimizer::_batchStatistics</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>global statistics of the optimizer, e.g., timing, num-non-zeros </p>

</div>
</div>
<a id="a3bd44c498c4d983c092f23673de14d5d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::_computeBatchStatistics</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aac4a9f9b7d875ee40cae55f98d3437ab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool* g2o::SparseOptimizer::_forceStopFlag</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a488b95a90a61454c787e9c13458e510b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a> g2o::SparseOptimizer::_ivMap</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a41b3803182a4db6c0ff8c8d4352dd149"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::SparseOptimizer::_verbose</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="sparse__optimizer_8h_source.html">sparse_optimizer.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="sparse__optimizer_8cpp.html">sparse_optimizer.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceg2o.html">g2o</a></li><li class="navelem"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
